0 REM 'VIC BOOTER' COPYRIGHT 1984 GEORGE JONES * FOR VIC 20 1 CLR:DV=PEEK(186) 2 BS%=692:FI%=512:CS%=93:SR%=735:RN%=733:LM%=702:PO%=723:IM%=770:MX=65535 3 S%=679:E%=771:LO%=PEEK(IM%):HI%=PEEK(E%) 4 GOSUB66:REM TITLE 5 GOSUB19:REM INPUT DISK,ID & PROG NAME STRING 6 GOSUB51:REM FORMAT DISK AND WRITE BOOT 7 PRINT"[147]";:PRINT"[144][212]HE [194][207][207][212] WILL LOAD":PRINT"AND RUN THE PROGRAM" 8 PRINT"";PN$:PRINT:PRINT"[146][144]AFTER YOU HAVE SAVED" 9 PRINT"IT ONTO THIS DISK." 10 PRINT"[212]O TEST, TYPE:":PRINT"[204][207][193][196]";:PRINTCHR$(34)":*"CHR$(34);:PRINT",8,1" 11 CLOSE2:CLOSE15 12 PRINT"[193]NOTHER [194][207][207][212] ? (Y/N)" 13 GETA$:IFA$=""THEN13 14 IFA$<>"Y"ANDA$<>"N"THEN13 15 IFA$="Y"THENRESTORE:GOTO5 16 PRINT"[147]" 17 SYS58459:REM RESTORE WARM START VECTOR 18 PRINT"[193]LL [196]ONE!";:GOTO18 19 PRINT"[147]":DN$="":ID$="":PN$="":POKERN%,174:POKERN%+1,199:POKEIM%,180:POKEIM%+1,2 20 REM POKE ADDRESS OF BOOT INTO BASIC WARM START VECTOR 21 PRINT"[201][206][211][197][210][212][160][196][201][211][203][160][212][207][160][198][207][210][205][193][212][146]":PRINT 22 FORC=S%TOE%:READZ%:POKEC,Z%:NEXT 23 PRINT"*[196][193][212][193][160][215][201][204][204][160][194][197][160][197][210][193][211][197][196]*[146]" 24 PRINT" [206][197][215][160][196][201][211][203][160][206][193][205][197]:[146] " 25 INPUTDN$ 26 IFLEN(DN$)=0THEN24 27 PRINT" [206][197][215][160][196][201][211][203][160][201][196]:[146] " 28 INPUTID$ 29 IFLEN(ID$)=0THEN27 30 PRINT"[206]AME THE PROGRAM":PRINT"YOU WANT TO [194]OOT" 31 INPUTPN$ 32 IFLEN(PN$)=0THEN31 33 GOSUB71:REM GET STRING FROM INPUT BUFFER AND POKE TO FILENAM 34 PRINT"[201]S ";PN$;"[146]":PRINT"A [194][193][211][201][195] PROGRAM? (Y/N)" 35 GETA$:IFA$=""THEN35 36 IFA$<>"Y"ANDA$<>"N"THEN35 37 IFA$="Y"THENRETURN:REM NOW GET ENTRY POINT OF ML PROGRAM 38 PRINT"[199]IVE THE [211][217][211] ADDRESS:[146]" 39 INPUTAD 40 IFAD=<1ORAD>=MXTHENPRINT"[207][213][212] [207][198] [210][193][206][199][197]![146]":FORC=1TO1000:NEXT:PRINT"";:GOTO38 41 POKERN%,(AD-INT(AD/256)*256):REM POKE LO BYTE 42 POKERN%+1,(AD/256):REM POKE HI BYTE 43 PRINTTAB(4)"[201]S DATA CORRECT? (Y/N)" 44 GETA$:IFA$=""THEN44 45 IFA$<>"Y"ANDA$<>"N"THEN44 46 IFA$="N"THENRUN 47 RETURN 48 CLOSE15:OPEN15,DV,15 49 INPUT#15,ER,ER$,T,S 50 RETURN 51 GOSUB48 52 IFERTHENPRINTTAB(8)ER;ER$;T;S:PRINT"[208][204][197][193][211][197] [208][207][215][197][210] [196][207][215][206][160]& [211][212][193][210][212] [207][214][197][210]!";:GOTO52 53 CLOSE15:OPEN15,DV,15 54 PRINT#15,"N0:"+DN$+","+ID$ 55 CLOSE15 56 GOSUB48 57 IFERTHEN52 58 CLOSE2:OPEN2,DV,1,"0:[160]THE MAGIC BOOT,P,W":REM SHIFTED SPACE BEFORE TITLE 59 PRINT#2,CHR$(S%-INT(S%/256)*256); 60 PRINT#2,CHR$(S%/256); 61 FORI=0TOCS%-1 62 PRINT#2,CHR$(PEEK(S%+I)); 63 NEXT 64 CLOSE2 65 RETURN 66 PRINT"[147]";CHR$(14):POKE36879,25 67 PRINTTAB(7)"[214][201][195] [194][207][207][212][197][210]" 68 PRINT" ([195]) 1984 [199]EORGE [202]ONES" 69 FORT=1TO2000:NEXT 70 RETURN 71 FORC=1TOLEN(PN$) 72 POKESR%,(PEEK(FI%)) 73 SR%=SR%+1:FI%=FI%+1 74 NEXT 75 POKELM%,LEN(PN$):REM SET LENGTH OF NEW PROGRAM NAME 76 RETURN 77 REM***************************** 78 REM MX=65535 MAXIMUM ADDRESS 79 REM BS%=692 START OF NUBOOT 80 REM FI%=512 SYSTEM INPUT BUFFER 81 REM CS%=80 NO OF BYTES TO SAVE 82 REM SR%=735 LOC OF FILE NAME 83 REM RN%=733 INTERPRETER LOOP & 84 REM SYS ADDRESS FOR ML PROG 85 REM LM%=702 STORE LEN(PN$) 86 REM IM%=770 BASIC WARM START VECTOR 87 REM PN$= PROGRAM NAME 88 REM DN$= DISK NAME 89 REM ID$= DISK ID 90 REM**************************** 91 DATA40,67,40,49,57,56,52,71,74,79,78,69,83,169,1,162 92 DATA8,160,1,32,186,255,169,15,162,223,160,2,32,189,255,169 93 DATA0,162,255,160,255,32,213,255,134,45,132,46,32,239,2,32 94 DATA91,228,32,89,198,76,174,199,160,160,160,160,160,160,160,160 95 DATA160,160,160,160,160,160,160,160,162,0,169,160,157,223,2,232 96 DATA224,16,208,246,141,189,2,96,0,139,227,180,2 97 REM 'VIC BOOTER' COPYRIGHT 1984 GEORGE JONES * FOR VIC 20